<div id="Revision-management"></div>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">|[[cvs: Multiple developers#Multiple developers| &lt;&lt; ]]|</td>
<td valign="middle" align="left">|[[cvs: Multiple developers#Choosing between reserved or unreserved checkouts| &lt; ]]|</td>
<td valign="middle" align="left">|[[cvs#Top| Up ]]|</td>
<td valign="middle" align="left">|[[#When to commit?| &gt; ]]|</td>
<td valign="middle" align="left">|[[cvs: Keyword substitution#Keyword substitution| &gt;&gt; ]]|</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">|[[cvs#Top|Top]]|</td>
<td valign="middle" align="left">|[[cvs: Table of Contents#SEC_Contents|Contents]]|</td>
<td valign="middle" align="left">|[[cvs: Index#Index|Index]]|</td>
<td valign="middle" align="left">|[[cvs: About this Manual#SEC_About| ? ]]|</td>
</tr></table>
<div id="Revision-management-1"></div>
== Revision management ==
<div id="index-Revision-management"></div>


If you have read this far, you probably have a pretty
good grasp on what <small>CVS</small> can do for you.  This
chapter talks a little about things that you still have
to decide.

If you are doing development on your own using <small>CVS</small>
you could probably skip this chapter.  The questions
this chapter takes up become more important when more
than one person is working in a repository.

<div class="menu-preformatted" style="font-family: serif">
 [[#When to commit?|&bull; When to commit]]::              Some discussion on the subject
</div>


----

<div id="When-to-commit"></div>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">|[[#Revision management| &lt;&lt; ]]|</td>
<td valign="middle" align="left">|[[#Revision management| &lt; ]]|</td>
<td valign="middle" align="left">|[[#Revision management| Up ]]|</td>
<td valign="middle" align="left">|[[cvs: Keyword substitution#Keyword substitution| &gt; ]]|</td>
<td valign="middle" align="left">|[[cvs: Keyword substitution#Keyword substitution| &gt;&gt; ]]|</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">|[[cvs#Top|Top]]|</td>
<td valign="middle" align="left">|[[cvs: Table of Contents#SEC_Contents|Contents]]|</td>
<td valign="middle" align="left">|[[cvs: Index#Index|Index]]|</td>
<td valign="middle" align="left">|[[cvs: About this Manual#SEC_About| ? ]]|</td>
</tr></table>
<div id="When-to-commit_003f"></div>
=== When to commit? ===
<div id="index-When-to-commit"></div>
<div id="index-Committing_002c-when-to"></div>
<div id="index-Policy"></div>

Your group should decide which policy to use regarding
commits.  Several policies are possible, and as your
experience with <small>CVS</small> grows you will probably find
out what works for you.

If you commit files too quickly you might commit files
that do not even compile.  If your partner updates his
working sources to include your buggy file, he will be
unable to compile the code.  On the other hand, other
persons will not be able to benefit from the
improvements you make to the code if you commit very
seldom, and conflicts will probably be more common.

It is common to only commit files after making sure
that they can be compiled.  Some sites require that the
files pass a test suite.  Policies like this can be
enforced using the commitinfo file
(see section [[cvs: Reference manual for Administrative files#Commitinfo|Commitinfo]]), but you should think twice before
you enforce such a convention.  By making the
development environment too controlled it might become
too regimented and thus counter-productive to the real
goal, which is to get software written.


----

<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">|[[#Revision management| &lt;&lt; ]]|</td>
<td valign="middle" align="left">|[[cvs: Keyword substitution#Keyword substitution| &gt;&gt; ]]|</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">|[[cvs#Top|Top]]|</td>
<td valign="middle" align="left">|[[cvs: Table of Contents#SEC_Contents|Contents]]|</td>
<td valign="middle" align="left">|[[cvs: Index#Index|Index]]|</td>
<td valign="middle" align="left">|[[cvs: About this Manual#SEC_About| ? ]]|</td>
</tr></table>
This document was generated on <i>a sunny day</i> using [http://www.nongnu.org/texi2html/ <i>texi2html</i>].
